package com.liuyu.common.framework.insurance.picc.zb.model.request.insure;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * 人保总部通用接口-被保险人
 * 被保险人信息 如果是团单单，则保单信息<Insured>为可扩展，但数目不能超过300条，如果是个单，<Insured>数目为1
 *
 * @author: liuyu
 * @date: 2022/3/30 16:15
 * @version: 1
 */
@XStreamAlias("Insured")
@Data
public class PiccZbInsured {
    @Schema(description = "序列号|否|默认从1开始，随insureds节点个数增加递增")
    private Integer insuredSeqNo;
    @Schema(description = "方案组别代码|否|与plan节点下groupNo对应")
    private String planGroupNo;
    @Schema(description = "被保人姓名|否|")
    private String insuredName;
    @Schema(description = "被保人英文姓名|是|")
    private String insuredEName;
    @Schema(description = "被保人证件类型|否|")
    private String insuredIdType;
    @Schema(description = "被保人证件号|否|")
    private String insuredIdNumber;
    @Schema(description = "被保人生日|是|证件类型为生日必传")
    private String insuredBirthday;
    @Schema(description = "被保人性别|否|")
    private String insuredSex;
    @Schema(description = "购买保险方案份数|是|默认为1，传输则以传输个数为主")
    private String quantity;
    @Schema(description = "被保人手机号|是|")
    private String insuredMobile;
    @Schema(description = "与被保人的关系|是|默认为0（本人）")
    private String insuredIdentity;
    @Schema(description = "被保人邮箱|是|")
    private String insuredEMail;
    @Schema(description = "被保人住址|是|部分险种不为空，如家财险家庭地址，由PICC提供规则")
    private String insuredAddress;
    @Schema(description = "单位性质|是|团体客户时必录")
    private String natureOfEnterprise;
    @Schema(description = "企业联系人姓名|是|团体客户时必录")
    private String businessContacts;
    @Schema(description = "统一社会信用代码|是|团体客户此字段必录（证件类型31或37，37可以不传，默认将证件号字段赋值此字段）")
    private String unifiedSocialCreditCode;
    @Schema(description = "国家代码|是|证件类型为护照或外国人永久居住证是必录")
    private String countryCode;
    @Schema(description = "境外标志|是|YII、YIE险种需要传输，是否涉及境外")
    private String isOutSide;
    @Schema(description = "联系人姓名|是|")
    private String linkerName;
    @Schema(description = "联系人手机号|是|")
    private String linkerMobile;
    @Schema(description = "受益人|是|")
    private List<PiccZbBenefit> benefits;
    @Schema(description = "被保人特殊节点|是|部分险种不能为空，由PICC提供规则。")
    private List<Map<String, String>> specials;
    @Schema(description = "人证相符标志|是|1：是 2：否")
    private String IdenticalFlag;
    @Schema(description = "证件有效起期|是|格式:yyyy-MM-dd  满足实名制查验条件且证件类型为身份证为必录")
    private String certStart;
    @Schema(description = "证件有效止期|是|格式:yyyy-MM-dd  满足实名制查验条件且证件类型为自然人证件类型为必录")
    private String certEnd;
    @Schema(description = "是否密文，投标保证保险使用|是|0：密文；1：明文，密文情况下请默认XXXXXXXXXXXXXXXXXX  （十八个大写的X）")
    private String isCiphertext;
    @Schema(description = "关系人第二证件类型|是|")
    private String secondIdType;
    @Schema(description = "关系人第二证件号|是|")
    private String secondIdNumber;
    @Schema(description = "职业代码|是|")
    private String occupationCode;
    @Schema(description = "行业代码|是|")
    private String businessSource;
}
